// PROGRAMA : IDCPA001 (VERSAO PARA ABN)
// BIBLIOTECA : SISP
// SISTEMA : INFORMACOES DE SEGURANCA PUBLICA - SISP
// CLIENTE : GEJUSPC - GERENCIA DA JUSTICA, SEGURANCA PUBLICA E
// CIDADANIA/INSTITUTO DE IDENTIFICACAO
// PROGRAMADOR : * DATA: 02/03/1999
// OBJETIVO : ATUALIZA CADASTRO OPCAO: 'AIC'
// ATUALIZACOES DATA
// PROGRAMA : IDCPA001 02/03/1999
// BIBLIOTECA : SISP
// PROGRAMADOR :
// OBJETIVO : ATUALIZA CADASTRO OPCAO: 'AIC'
// E FAZ A IMPRESSAO SIMULTANEA DO BOLETIM E DO RG
// : ATUALIZA DATA N6 PARA N8 (BUG ANO 2000) 07/10/1999
// : RESETAR A PRIMEIRA TELA 26/11/1999
// : INCLUSAO DO (P-235), TREM DA CIDADANIA 16/02/2000
// : INCLUSAO DO (P-002), SHOPCID JOAO PAULO 26/04/2000
// : ALTERACAO PARA ACAO GLOBAL 20/05/2000
// : INCLUSAO DO (P-005), SHOPCID IMPERATRIZ 18/08/2000
// : IMPRESS. SIMULTANEA DE QUALQUER USUARIO 21/08/2000
// : ALTERACAO PARA DELETEAR RG. 13/03/2001
// : INCLUSAO DO CAMPO HORA(DINHID-HORATU) NO DID-HISTORICO
// : CRIACAO DA TABELA DE USER-ID 30/10/2001
// ALTERACAO PARA ABN (AMERICAN BANK NOTE) 19/04/2002
// > CRIACAO DO CAMPO RENAID TELA IDCTA002.
// > CRIACAO DO CAMPO GRAU DE INSTRUCAO TELA IDCTA001.
// > ALTERACAO NO ARQUIVO ADABAS DID-CADASTRO.
// > ALTERACAO NO ARQUIVO ADABAS SIC-CONTROLE.
// > ALTERACAO NAS LOCAL: VWDIDCAD,VWDVECON,VWDIDHIS,
// IDCLA001.
// > EM 19/04/2002
// : GRAVA ARQUIVO ADABAS SIC-RG PARA USO ABN
// EM 25/11/2002
// : DISCRIMINA DA ABN
// EM 30/11/2002
// : ULTIMA ALTERACAO EM 04/12/2002
// ALTERCOES FEITAS POR SOLON.
package br.com.vti.sisp_sicrim.antigo.controller.programa;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;

import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcpaaa1B;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcpaaa1C;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcpaaa1E;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcta000;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcta000B;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcta001;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcta002;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idctaa02;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcte0a1;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idctha01;
import br.com.vti.sisp_sicrim.antigo.model.DidCadastro;
import br.com.vti.sisp_sicrim.antigo.model.DidHistorico;
import br.com.vti.sisp_sicrim.antigo.model.Estla001;
import br.com.vti.sisp_sicrim.antigo.model.Idcla001;
import br.com.vti.sisp_sicrim.antigo.model.SicRg;
import br.com.vti.sisp_sicrim.antigo.model.SicTabelas;
import br.com.vti.sisp_sicrim.antigo.model.Sislac01;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.Sisgsisp;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe : Idcpaaa1 OBJETIVO : ATUALIZA CADASTRO OPCAO: 'AIC' *
 * 
 * @author Incode - Data: mai/2014
 * 
 */
@Resource
@Path("/antigo/idcpaaa1")
public class Idcpaaa1 {
	// Views utilizadas
	SicTabelas vwTabele = new SicTabelas();
	SicTabelas vwDvetab = new SicTabelas();
	DidCadastro vwDidcad = new DidCadastro();
	DidHistorico vwDidhis = new DidHistorico();
	SicRg vwsicrg = new SicRg();
	SicTabelas dvetabVw = new SicTabelas();
	// DidCadastro didcad = new DidCadastro();
	DidCadastro viu1 = new DidCadastro();
	// Telas/relatorios utilizados
	Idcpaaa1B idcpaaa1B;
	Idcpaaa1C idcpaaa1C;
	Idcpaaa1E idcpaaa1E;
	Idcta000 idcta000;
	Idcta000B idcta000B;
	Idcta001 idcta001;
	Idcta002 idcta002;
	Idctaa02 idctaa02;
	Idcte0a1 idcte0a1;
	Idctha01 idctha01;
	// Includes utilizados
	Estla001 estla001 = new Estla001();
	Idcla001 idcla001 = new Idcla001();
	Sislac01 sislac01 = new Sislac01();
	// Areas globais / session
	Sisgsisp sisgsisp;
	// Funcoes/subrotinas
	FuncoesGerais funcoes = new FuncoesGerais();
	// Idcsup01 idcsup01 = new Idcsup01(result, sessao);

	Result result;
	Sessao sessao;
	Boolean primeiraVez = false;
	Idcpaaa1 idcta000nterior;
	String faseproc = "0";
	private int dv1 = 0;
	private String pais = "";
	private int dtat = 0;
	private String chave = "";
	private int i = 0;
	private String[][] dedos = new String[6][3];
	private String[][] dedot = new String[6][3];
	private String isn = "";
	private String uf = "";
	private String chalf = "";
	private int datn = 0;
	private String p200 = "*** INSTITUTO DE IDENTIFICACAO ***";
	private String cab01 = "POSTO - 001 * SLS-MA";
	private int j = 0;
	private int codpesq = 0;
	private int matesp = 0;
	private String confr = "";
	private int jXpto = 3;
	private int c1 = 0;
	private int c2 = 0;
	private String jUser = UtilBean.getInitUser();
	private String ctl = "";
	private int k = 0;
	private String conf = "";
	private int datemi = 0;
	private String chassi = "";
	private String nommae = "";
	private String nompai = "";
	private String comuna = "";
	private int data8 = 0;
	private String[] numpos = new String[3];
	private String[] numvia = new String[3];
	private String[] pis = new String[3];
	private long[] pispas = new long[3];
	private String[] numcpf = new String[3];
	private String[] docum1 = new String[3];
	private String[] docum2 = new String[3];
	private long[] reggert = new long[3];
	private int[] datnas = new int[3];
	private long[] ndemid = new long[3];
	private long ndemidAbn = 0;
	private String[] comun = new String[3];
	private String[] nvia = new String[3];
	private String[] ufnasc = new String[3];
	private String vvv = "";
	private String ppp = "";
	private String docume = "";
	private String nomide = "";
	private String nomid1 = "";
	private String nomid2 = "";
	private String filia1 = "";
	private long[] numrg = new long[3];
	private long[] nserie = new long[3];
	private String[] nomeid = new String[3];
	private int horatemp = 0;
	private int l = 0;
	private String acha1 = "";
	private long iReggerm = 0;
	private int dataCorrente = 0;
	private String chaveAlfa = "";
	private String tabDescel = "";
	private int tPosto = 0;
	// CABECALHO DO POSTO: POSTO
	private String tAsterisco = "";
	// NUMERO DO POSTO
	private String tDescel = "";
	// CONTEM
	private int qPosto = 0;
	// NOME DO ORGAO OU SETOR
	private long rendv = 0;
	private long soma = 0;
	private int resto = 0;
	private int w = 0;
	private String wrenaid = "";
	private String wdel = "";
	private String iCnumvia = "";
	private String wvideo = "";
	private String wret = "";
	// PROGRAMA: GETCHR
	// FUNCAO: CAPTURA O NOME LOGICO DO TERMINAL
	private String ppg = "";
	private String pparm = "";
	private int rTid = 0;
	private int len = 0;
	private int retcode = 0;
	private String getarea = "";
	private String devi = "";
	private String devic = "";
	private String video = "";
	private int nterm = 0;
	String relat0090 = ""; // SETA PF'S

	private Idcta000 preMapas() {
		idcpaaa1B = new Idcpaaa1B(true, sessao);
		idcpaaa1C = new Idcpaaa1C(true, sessao);
		idcpaaa1E = new Idcpaaa1E(true, sessao);
		idcta000 = new Idcta000(true, sessao);
		idcta000B = new Idcta000B(true, sessao);
		idcta001 = new Idcta001(true, sessao);
		idcta002 = new Idcta002(true, sessao);
		idctaa02 = new Idctaa02(true, sessao);
		idcte0a1 = new Idcte0a1(true, sessao);
		idctha01 = new Idctha01(true, sessao);
		Arrays.fill(dedos, "");
		Arrays.fill(dedot, "");
		Arrays.fill(numpos, "");
		Arrays.fill(numvia, "");
		Arrays.fill(pis, "");
		Arrays.fill(pispas, 0);
		Arrays.fill(numcpf, "");
		Arrays.fill(docum1, "");
		Arrays.fill(docum2, "");
		Arrays.fill(reggert, 0);
		Arrays.fill(datnas, 0);
		Arrays.fill(ndemid, 0);
		Arrays.fill(comun, "");
		Arrays.fill(nvia, 0);
		Arrays.fill(ufnasc, "");
		Arrays.fill(numrg, 0);
		Arrays.fill(nserie, 0);
		Arrays.fill(nomeid, "");
		idcta000.setDataCorrente(UtilBean.obtemDataCorrente());
		idcta000.setDataCorrente(UtilBean.inverteDataCorrente());
		idcta000.setMensagemSaida("INFORME OS DADOS ACIME P/ATUALIZAR                (SOLON - CEL:9974-8432) ");
		datn = UtilBean.obtemDataCorrente();
		estla001.qde = 1;
		estla001.esttip = 99;
		l = 0;
		// Par�grafo: r0()
		return idcta000;
	}

	public Idcpaaa1(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	@Post
	public void executar(Idcpaaa1B idcpaaa1B, Idcpaaa1C idcpaaa1C, Idcpaaa1E idcpaaa1E, Idcta000 idcta000, Idcta000B idcta000B, Idcta001 idcta001, Idcta002 idcta002, Idctaa02 idctaa02, Idcte0a1 idcte0a1, Idctha01 idctha01) {
		try {
			main(idcpaaa1B, idcpaaa1C, idcpaaa1E, idcta000, idcta000B, idcta001, idcta002, idctaa02, idcte0a1, idctha01);
		} catch (Exception e) {
			ExceptionProgram excp = new ExceptionProgram();
			excp.trataErroSiscerro(e, sessao, this.getClass().getSimpleName());
		}
	}

	private void main(Idcpaaa1B pidcpaaa1B, Idcpaaa1C pidcpaaa1C, Idcpaaa1E pidcpaaa1E, Idcta000 pidcta000, Idcta000B pidcta000B, Idcta001 pidcta001, Idcta002 pidcta002, Idctaa02 pidctaa02, Idcte0a1 pidcte0a1, Idctha01 pidctha01) throws Exception {
		if (pidcpaaa1B == null && pidcpaaa1C == null && pidcpaaa1E == null && pidcta000 == null && pidcta000B == null && pidcta001 == null && pidcta002 == null && pidctaa02 == null && pidcte0a1 == null && pidctha01 == null) {
			primeiraVez = true;
			// idcta000 = new Idcta000 (primeiraVez);
			idcta000 = preMapas();
			idcta000.setNavegar("../idcpaaa1/executar");
			// result.include("idcta000", idcta000);
			// sessao.setAtributo("IDCPAAA1", this);
			// idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			// return;
		} else {
			restaurarEstados(pidcpaaa1B, pidcpaaa1C, pidcpaaa1E, pidcta000, pidcta000B, pidcta001, pidcta002, pidctaa02, pidcte0a1, pidctha01);
		}

		sessao.getSisgsisp().setOperacao("AIC");
		if (!UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
			idcta000.setIreggerm(idcta001.getIregger());
			if (wvideo.equals("T")) {
				idcta000.setIregger(0);
				iReggerm = 0;
			}
			if (idcta002.getChave().equals("I")) {
				idcta000.setIregger(0);
			}
			chave = "";
			for (int i1 = 1; i1 <= 5; i1++) {
				for (int i2 = 1; i2 <= 2; i1++) {
					dedos[i1][i2] = "";
				}
			}
			for (int i1 = 1; i1 <= 5; i1++) {
				for (int i2 = 1; i2 <= 2; i1++) {
					dedot[i1][i2] = "";
				}
			}
			estla001.cpo = 0;
			// idcG = "";
			pais = "";
			idcta000.setMatesp(0);
			idcta000.setInomide("");
			idcta000.setInommae("");
			idcta000.setDnas(0);
			idcta000.setMnas(0);
			idcta000.setAnas(0);
		}

		// ATUALIZAR A TABELA DE USER-ID/POSTO A CADA NOVO USUARIO
		// UtilBean.subStr(chaveAlfa,0, 3) = 888;
		// OPCAO 'ATP'
		// UtilBean.subStr(chaveAlfa,3, 14) = jUser;
		// TABELA DE USER-ID E POSTO
		vwTabele.consultaTabcha(888, jUser);

		tabDescel = dvetabVw.getDescricaoElem();
		idcta000.setP200(UtilBean.subStr(tabDescel, 0, 30));
		idcta000.setCab01(UtilBean.subStr(tabDescel, 30, 30));

		if (vwTabele.registrosProcessados() == 0) {
			UtilBean.mensagemTexto("USER-ID NAO AUTORIZADA PARA USAR O SISP:" + UtilBean.subStr(chaveAlfa, 3, 14));
			UtilBean.mensagemTexto("FAVOR ENTRAR EM CONTATO COM O ANLISTA DO SISP");
			UtilBean.mensagemTexto("ANALISTA DO SISP: SOLON");
			UtilBean.mensagemTexto("TEL: (098)227-5772 / 227-5599 / 227-5578 OU 9974-8432");
			return;
		}
		// ALTERACAO PARA IMPRESSAO DO RG E BOLETIM PELA ABN
		len = 148;
		retcode = funcoes.getchr(getarea, len, rTid);
		if ((video.equals("TIDC01") || video.equals("TIDC02") || video.equals("TIDC03") || video.equals("TIDC04") || video.equals("TIDC05") || video.equals("TIDC06") || video.equals("TIDC07") || video.equals("TIDC08") || video.equals("TIDC09") || video.equals("TIDC10") || video.equals("TIDC11") || video.equals("TIDC12") || video.equals("TIDC13") || video.equals("TIDC14") || video.equals("TIDC15") || video.equals("TIDC16") || video.equals("TIDC17") || video.equals("TIDC18") || video.equals("TIDC19") || video.equals("TIDC20") || video.equals("TIDC21") || video.equals("TIDC22")) && tPosto == 1)
		// TERMINAIS DA CONTROLADORA DO INSTITUTO DE IDENTIFICACAO
		{
			// continue;
		} else {
			if (idcta002.getChave().equals("I")) {
				for (c1 = 1; c1 <= 2; c1++) {
					for (c2 = 1; c2 <= 5; c2++) {

						idcta000.setDedos(c2, c1, "W");
					}
				}
			}
		}

		if (!idcta000.getEnviada()) {
			result.include("idcta000", idcta000);
			sessao.setAtributo("IDCPAAA1", this);
			idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			return;
		}
		if (pidcta000 != null) {
			idcta000.receberTela(false, result);
		}
		// TELA 1 DE ATUALIZACAO DO CADASTRO
		if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
			idcta000.setMensagemSaida("TRANSACAO CANCELADA");
			result.include("idcta000", idcta000);
			sessao.setAtributo("IDCPAAA1", this);
			idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			return;
		}
		if (idcta000.getIregger() > 0)
		// PROCESSA RG JA CADASTRADOS(ALTERACAO)
		{
			if (idcta000.getIregger() > 250000000 && idcta000.getIregger() < 251672941) {
				dv1 = funcoes.idcndig1((int) idcta000.getIregger());
				// CORRIGIR DIGITO MULTIRAO
				if (dv1 != UtilBean.extraiDigitos(idcta000.getIregger(), 12, 12, 1)) {

					dv1 = funcoes.idcndig2(idcta000.getIregger());
					// CALCULA DIGITO VERIFICADOR MOD. 11
					if (dv1 != UtilBean.extraiDigitos(idcta000.getIregger(), 12, 12, 1)) {
						idcta000.enviarMensagem("iRegger", "");
						return;
					}
				}
			} else {
				dv1 = funcoes.idcndig2(idcta000.getIregger());
				// CALCULA DIGITO VERIFICADOR MODULO 11
				if (dv1 != UtilBean.extraiDigitos(idcta000.getIregger(), 12, 12, 1)) {
					idcta000.enviarMensagem("iRegger", "");
					return;
				}
			}
			vwDidcad.consultaNumeroRg(idcta000.getIregger());
			isn = vwDidcad.getId();// isn = *ISN(1840);
			idcta000.setChave("A");
			estla001.cpo = 2;
			if (!mostrar1(pidcpaaa1C, pidcpaaa1E, pidcta001, pidcta002, pidctaa02, pidctha01)) {
				return;
			}
			if (UtilBean.funcao.equals(UtilBean.ctt_retorna) || UtilBean.funcao.equals(UtilBean.ctt_proxima)) {
				result.include("idcta000", idcta000);
				sessao.setAtributo("IDCPAAA1", this);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			if (idcpaaa1C.getOp3().equals("N")) {
				idcta000.setMensagemSaida("REGISTRO ALTERADO OK.");
				vwDidcad.pesquisaPorId();
				mover();
				vwDidcad.atualiza();
				// dao.commit();
				// ATUALIZA REGISTRO NO SIC-RG PARA ABN
				wdel = "";
				rotSicRg();
			}
			historico();

			if (vwDidcad.registrosProcessados() == 0) {
				idcta000.enviarMensagem(null, "");
				return;
			}
		} else
		// PROCESSA RG NOVOS(INCLUSAO)
		{
			if (idcla001.nom0[1].trim().equals("")) {
				idcta000.enviarMensagem(null, "INFORME NOME CORRETAMENTE");
				result.include("idcta000", idcta000);
				sessao.setAtributo("IDCPAAA1", this);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			if (!idcpaaa1B.getEnviada()) {
				result.include("idcpaaa1B", idcpaaa1B);
				sessao.setAtributo("IDCPAAA1", this);
				idcpaaa1B.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			if (pidcpaaa1B != null) {
				idcpaaa1B.receberTela(false, result);
			}
			if (UtilBean.funcao.equals(UtilBean.ctt_retorna) || idcpaaa1B.getConfr().equals("N")) {
				result.include("idcta000", idcta000);
				sessao.setAtributo("IDCPAAA1", this);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			if (!(idcpaaa1B.getConfr().equals("S") || idcpaaa1B.getConfr().equals("N"))) {
				idcpaaa1B.enviarMensagem(null, "INFORME �S� SIM OU �N� NAO");
				result.include("idcpaaa1B", idcpaaa1B);
				sessao.setAtributo("IDCPAAA1", this);
				idcpaaa1B.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			estla001.cpo = 1;
			idcta000.setMensagemSaida("OPCAO A SER EFETUADA - INCLUSAO");
			idcta000.setChave("I");

			idcta000.receberTela(false, result);
			// TELA 1 DE ATUALIZACAO DO CADASTRO
			if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
				idcta000.setMensagemSaida("INCLUSAO NAO EFETUADA");
				result.include("idcta000", idcta000);
				sessao.setAtributo("IDCPAAA1", this);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			if (!telas(pidcta001, pidcta002, pidctaa02, pidctha01)) {
				return;
			}
			// OBSERVACAO
			// DATA DA ATUALIZACAO DA TABELA 208, ULTIMO NUMERO DO RG COM ANO
			// (N2)
			// ULTIMO NUMERO: 124700299-0
			// DATA.: 23/10/1999
			dvetabVw.pesq = UtilBean.moveSubstring(dvetabVw.pesq, 0, 3, "N", 208);
			dvetabVw.pesq = UtilBean.moveSubstring(dvetabVw.pesq, 3, 12, "N", 1992001);
			dvetabVw.consultaTabele(208, (long) 1992001);
			// Par�grafo: rp()

			chalf = dvetabVw.getChaveAlfaAcesso();
			chalf = UtilBean.moveSubstring(chalf, 0, 8, "N", Long.parseLong(UtilBean.subStr(chalf, 0, 8)) + 1);

			vwTabele.setChaveAlfaAcesso(chalf);
			dvetabVw.atualiza();
			// dao.commit();
			idcla001.iRegger = Long.parseLong(UtilBean.subStr(chalf, 0, 8)) * 10000 + idctaa02.getAdoc();
			// ADICIONA O ANO AO RG

			dv1 = funcoes.idcndig2(idcta000.getIregger());
			idcla001.iRegger = Long.parseLong(UtilBean.moveSubstring(idcla001.iRegger, 12, 1, "N", dv1));
			vwDidcad.pesquisaNumeroRg(idcta001.getIregger());
			if (vwDidcad.registrosProcessados() > 0) {

				acha1 = "X";
			}

			if (acha1.equals("X")) {
				acha1 = "";
				// continue;
			} else {
				result.include("idcta000", idcta000);
				sessao.setAtributo("IDCPAAA1", this);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return;
			}

			// dao.rollback();
			mover();
			vwDidcad.grava();
			// dao.commit();
			// ATUALIZA REGISTRO NO SIC-RG PARA ABN
			wdel = "";
			rotSicRg();
			idcta000.setMensagemSaida("REGISTRO INCLUIDO OK. ");

			idcta000.receberTela(false, result);
		}
		// TELA 1 DE ATUALIZACAO DO CADASTRO
		// dao.rollback();
		idcla001.iDatnat = 0;
		idcla001.iDatnas = 0;
		idcla001.iDatexp = 0;
		idcla001.iDatdoc = 0;
		if (!UtilBean.funcao.equals(UtilBean.ctt_retorna))
		// ATUALIZA DCAD-ESTATISTICAS
		{

			funcoes.estna001(estla001.cpo, estla001.esttip, estla001.qde, sessao.getSisgsisp().getVar(), idcpaaa1C.getMatric());
			// ALTERACAO ABN(AMERICAN BANK NOTE)
			if (tPosto == 1 || tPosto == 200 || tPosto == 002 || tPosto == 005 || tPosto == 077 || tPosto == 240 || tPosto == 250 || (UtilBean.subStr(getarea, 56, 8).compareTo("TIDC0021") >= 0 && UtilBean.subStr(getarea, 56, 8).compareTo("TIDC0080") <= 0) || UtilBean.subStr(getarea, 56, 8).equals("TSTI0003") || tPosto == 237) {
				imprimeRg();
			} else {
				Idcpe090 idcpe090 = new Idcpe090(result, sessao);
				sessao.setAtributo("menu_retorno", this.getClass().getName());
				idcpe090.executar(null, idcta001.getIregger(), jXpto);
				if (!acumulaRgImprime(pidcte0a1))
					return;
			}
		}
		sessao.setAtributo("IDCPAAA1", this);
		result.include("idcta000", idcta000);
		idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
	} // IMPRIME BOLETIM
		// IMPRIME ESPELHO (RG)

	private boolean mostrar1(Idcpaaa1C pidcpaaa1C, Idcpaaa1E pidcpaaa1E, Idcta001 pidcta001, Idcta002 pidcta002, Idctaa02 pidctaa02, Idctha01 pidctha01) throws Exception {
		idcta000.setMensagemSaida("OPCAO A SER EFETUADA - ALTERACAO OU BAIXA");
		idcta001.setInumpos(vwDidcad.getNumeroPosto());
		idcta001.setInompai(vwDidcad.getNomePai());
		idcta001.setIregger(vwDidcad.getNumeroRg());
		idcta001.setDnas((int) UtilBean.extraiDigitos(vwDidcad.getDataNasc(), 8, 7, 2));
		idcta001.setMnas((int) UtilBean.extraiDigitos(vwDidcad.getDataNasc(), 8, 5, 2));
		idcta001.setAnas((int) UtilBean.extraiDigitos(vwDidcad.getDataNasc(), 8, 1, 4));
		// idcla001.iDatnas = vwDidcad.getDataNasc();
		idcta002.setImicrof(vwDidcad.getCodigoMicrofilme());
		idcta001.setIufrant(vwDidcad.getUfRegAnterior());
		idcta001.setInacion(vwDidcad.getNacionalidadeIdent());
		idcla001.iUfnasc = vwDidcad.getUfMunicipioNasc();
		idcta002.setIpispas(vwDidcad.getNumeroPisPasep());
		// idcla001.iDatexp = vwDidcad.getDataExp();
		idcla001.iUfexpe = vwDidcad.getUfMunicipioExp();
		idcta001.setInserie(vwDidcad.getNumeroSerieCart());
		idcta001.setIuftitu(vwDidcad.getUfTituloEleitor());
		idcta001.setIcermil(vwDidcad.getNumeroCertificado());
		idcta001.setIufpcnh(vwDidcad.getUfCnh());
		idcta001.setIfatorh(vwDidcad.getFatorRh());
		idcta001.setIcomuen(vwDidcad.getCodigoMunicipio());
		idcta002.setIcodpro(vwDidcad.getCodigoProfissao());
		idcla001.iDespro = vwDidcad.getDespro();
		idcta002.setIaltura(vwDidcad.getAlturaIdent());
		idcta002.setIcorcab(vwDidcad.getCodigoCorCabelo());
		idcta002.setIcodano(vwDidcad.getCodigoAnomalia());
		idcla001.iDatdoc = vwDidcad.getDataDocumento();
		idcta001.setInsecao(vwDidcad.getNumeroSecao());
		idcta001.setIzonaof(vwDidcad.getZonaOficio());
		idcta001.setInumliv(vwDidcad.getNumeroLivro());
		idcta001.setInumcer(vwDidcad.getNumeroCertidao());
		idcta001.setIcomple(vwDidcad.getComplementoEndereco());
		idcta002.setIsinpar(vwDidcad.getSinaisParticulares());
		idcta001.setInomant(vwDidcad.getNomeAnterior());
		idcta001.setIanopor(vwDidcad.getAnoPortariaMinist());
		idcta001.setDnat((int) UtilBean.extraiDigitos(vwDidcad.getDataNaturalizacao(), 8, 7, 2));
		idcta001.setMnat((int) UtilBean.extraiDigitos(vwDidcad.getDataNaturalizacao(), 8, 5, 2));
		idcta001.setAnat((int) UtilBean.extraiDigitos(vwDidcad.getDataNaturalizacao(), 8, 1, 4));
		// idcla001.iDatnat = vwDidcad.getDataNaturalizacao();
		idcta001.setIregger(vwDidcad.getNumeroRg());
		idcta001.setDexp((int) UtilBean.extraiDigitos(vwDidcad.getDataExp(), 8, 7, 2));
		idcta001.setMexp((int) UtilBean.extraiDigitos(vwDidcad.getDataExp(), 8, 5, 2));
		idcta001.setAexp((int) UtilBean.extraiDigitos(vwDidcad.getDataExp(), 8, 1, 4));
		// idcla001.iDatexp = vwDidcad.getDataExp();
		idcta001.setIordens(vwDidcad.getNumeroOrdem());
		idcta001.setInumpro(vwDidcad.getNumeroProtocolo());
		idcta002.setInomide(vwDidcad.getNomeIdent());
		idcta001.setInommae(vwDidcad.getNomeMae());
		idcta001.setIregant(vwDidcad.getRegistroAnterior());
		idcta001.setInumcpf(vwDidcad.getNumeroCpf());
		idcta002.setInumvia(vwDidcad.getNumeroVia());
		idcta002.setInumvia(idcta002.getInumvia());
		idcta002.setInumvia(1);
		idcta001.setIestciv(vwDidcad.getEstadoCivil());
		idcta001.setIcomuna(vwDidcad.getNomeMunicipioIdent());
		idcta001.setIcodsex(vwDidcad.getCodigoSexo());
		idcta001.setItipdoc(vwDidcad.getTipoDocumento());
		idcta001.setIcomuex(vwDidcad.getCodigoMunicipioExp());
		idcta001.setIcartra(vwDidcad.getNumeroCartTrab());
		idcta001.setItitele(vwDidcad.getNumeroTituloEleitor());
		idcta001.setInuzona(vwDidcad.getZonaEleitoral());
		idcta001.setIprtcnh(vwDidcad.getNumeroProntuarioCnh());
		idcta001.setItipsan(vwDidcad.getTipoSangue());
		idcta001.setIcodcep(vwDidcad.getCodigoCep());
		idcla001.iUfmure = vwDidcad.getUfMunicipio();
		idcta002.setIcodcut(vwDidcad.getCodigoCutis());
		idcta002.setIcorolh(vwDidcad.getCodigoCorOlhos());
		idcta002.setItipcab(vwDidcad.getCodigoTipoCabelo());
		idcta002.setImatfua(vwDidcad.getMatriculaFuncionario());
		idcta001.setIregiao(vwDidcad.getRegiaoMilitar());
		idcta001.setInumres(vwDidcad.getNumeroResidencia());
		idcta001.setIvcivil(vwDidcad.getVaraCivil());
		idcta001.setInumfol(vwDidcad.getNumeroFolha());
		idcta001.setInomcar(vwDidcad.getNomeCartorio());
		idcta001.setIbairro(vwDidcad.getNomeBairro());
		idcta001.setIendere(vwDidcad.getEnderecoIdent());
		idcta001.setInumpor(vwDidcad.getNumeroPortariaMinist());
		idcta001.setIcodpor(vwDidcad.getPaisOrigem());
		idcta001.setIgrauin(vwDidcad.getGrauin());
		idcta002.setIobserv(vwDidcad.getObservacaoAdocao());
		// I-RENAID := VW-DIDCAD.DINIDE-RENAID
		idcta000.setDedos(1, 1, vwDidcad.getPolegarDireito());
		idcta000.setDedos(2, 1, vwDidcad.getIndicadorDireito());
		idcta000.setDedos(3, 1, vwDidcad.getMedioDireito());
		idcta000.setDedos(4, 1, vwDidcad.getAnularDireito());
		idcta000.setDedos(5, 1, vwDidcad.getMinimoDireito());
		idcta000.setDedos(1, 2, vwDidcad.getPolegarEsquerdo());
		idcta000.setDedos(2, 2, vwDidcad.getIndicadorEsquerdo());
		idcta000.setDedos(3, 2, vwDidcad.getMedioEsquerdo());
		idcta000.setDedos(4, 2, vwDidcad.getAnularEsquerdo());
		idcta000.setDedos(5, 2, vwDidcad.getMinimoEsquerdo());
		dedot = idcta000.getDedos();

		idcta000.setMensagemSaida("TECLE ENTRA P/ATUAL. REG. OU UtilBean.ctt_proxima) P/DELETAR");

		idcta000.receberTela(false, result);
		// TELA 1 DE ATUALIZACAO DO CADASTRO
		// 1A. TELA
		if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
			return false;
		}

		idcpaaa1C.setOp3("N");
		if (UtilBean.funcao.equals(UtilBean.ctt_proxima)) {
			if (!idcpaaa1C.getEnviada()) {
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idcpaaa1C", idcpaaa1C);
				idcpaaa1C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (pidcpaaa1C != null) {
				idcpaaa1C.receberTela(false, result);
			}
			// IDCPAAA1
			if (!(idcpaaa1C.getOp3().equals("S") || idcpaaa1C.getOp3().equals("N"))) {
				idcpaaa1C.enviarMensagem(null, "INFORME �S� OU �N� ");
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idcpaaa1C", idcpaaa1C);
				idcpaaa1C.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (idcpaaa1C.getOp3().equals("N") || UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
				return false;
			}
			funcoes.tabsatu(sessao);
			if (!funcoes.camret.equals("")) {
				idcta000.enviarMensagem(funcoes.camret, "");
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idcta000", idcta000);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (idcpaaa1C.getMatesp() != 9996) {
				idcpaaa1C.enviarMensagem("matesp", "OPERACAO SO PERMITIDA AOS COORDENADORES DO INSTITUTO");
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idcpaaa1C", idcpaaa1C);
				idcpaaa1C.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 0, 3, "N", 18);
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 3, 12, "N", idcta000.getMatesp());
			// TABELA DE SENHA
			vwTabele.consultaTabele(18, (long) idcta000.getMatesp());
			// 967
			if (vwDvetab.getChaveAlfaAcesso() != idcpaaa1E.getSenesp()) {
				idcpaaa1C.enviarMensagem("senesp", "");
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idcpaaa1C", idcpaaa1C);
				idcpaaa1C.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			sislac01.niveis = dvetabVw.getDescricaoElem();
			if (!(UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("1") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("3") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("5") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("7"))) {
				idcpaaa1C.enviarMensagem("senesp", "");
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idcpaaa1C", idcpaaa1C);
				idcpaaa1C.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}

			if (vwTabele.registrosProcessados() == 0) {
				idcpaaa1C.enviarMensagem("matesp", "");
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idcpaaa1C", idcpaaa1C);
				idcpaaa1C.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 0, 3, "N", 210);
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 3, 12, "N", idcpaaa1C.getMotbai());
			// TABELA COM O MOTIVO DA BAIXA PARA DELETAR RG
			vwTabele.consultaTabele(210, Long.parseLong(idcpaaa1C.getMotbai()));
			// 981
			if (vwTabele.totalRegistros() == 0) {
				idcpaaa1C.enviarMensagem("motbai", "MOTIVO BAIXA NAO CADASTRADO");
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idcpaaa1C", idcpaaa1C);
				idcpaaa1C.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}

			estla001.cpo = 4;
			historico();
			vwDidcad.pesquisaPorId();
			vwDidcad.exclui();
			// dao.commit();
			wdel = "D";
			rotSicRg();
			wdel = "";
			idcta000.setMensagemSaida("REGISTRO DELETADO OK    (TECLE ENTER)  ");

			idcta000.receberTela(false, result);
			// TELA 1 DE ATUALIZACAO DO CADASTRO
			Idcpa001 idcpa001 = new Idcpa001(result, sessao);
			idcpa001.executar(null, null, null, null, null, null, null, null, null, null);
		}
		// Par�grafo: x1()
		for (i = 1; i <= 2; i++) {
			for (j = 1; j <= 5; j++) {
				if (idcta000.getDedos(j, i) != dedot[j][i] && idcpaaa1E.getMatesp() == 0) {
					idcpaaa1E.setMensagemSaida("SENHA ESPECIAL P/MUDAR A F.DAT.");
					if (!idcpaaa1E.getEnviada()) {
						sessao.setAtributo("IDCPAAA1", this);
						result.include("idcpaaa1E", idcpaaa1E);
						idcpaaa1E.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
						return false;
					}
					if (pidcpaaa1E != null) {
						idcpaaa1E.receberTela(false, result);
					}

					if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
						Idcpa001 idcpa001 = new Idcpa001(result, sessao);
						idcpa001.executar(null, null, null, null, null, null, null, null, null, null);
					}
					especial();
				}
			}
		}
		return telas(pidcta001, pidcta002, pidctaa02, pidctha01);
	}

	private void mover() {
		if (vwDidcad.getDataAtualizacao() > 0) {
			dtat = vwDidcad.getDataAtualizacao();
		}
		vwDidcad.setDataAtualizacao(UtilBean.obtemDataCorrente());
		vwDidcad.setNomeMae(idcta001.getInommae());
		vwDidcad.setDataExp(idcla001.iDatexp);
		vwDidcad.setDataNasc(idcla001.iDatnas);
		vwDidcad.setNomePai(idcta001.getInompai());
		vwDidcad.setRegistroAnterior(idcta001.getIregant());
		vwDidcad.setNumeroCpf(idcta001.getInumcpf());
		vwDidcad.setNumeroRg(idcta001.getIregger());
		vwDidcad.setNomeIdent(idcta002.getInomide());
		vwDidcad.setDataNaturalizacao(idcla001.iDatnat);
		vwDidcad.setDataDocumento(idcla001.iDatdoc);
		vwDidcad.setNumeroPosto(idcta001.getInumpos());
		vwDidcad.setNumeroProtocolo(idcta001.getInumpro());
		vwDidcad.setCodigoMicrofilme(idcta002.getImicrof());
		if (idcta001.getIordens() == 9) {
			estla001.cpo = 3;
		}
		vwDidcad.setNumeroVia(idcta002.getInumvia());
		vwDidcad.setEstadoCivil(idcta001.getIestciv());
		vwDidcad.setNomeMunicipioIdent(idcta001.getIcomuna());
		vwDidcad.setUfRegAnterior(idcta001.getIufrant());
		vwDidcad.setNacionalidadeIdent(idcta001.getInacion());
		if (idcta001.getIcomuna() > 180 || idcta001.getInacion() == 1) {
			codpesq = idcta001.getIcomuna();
			uf();
			idcla001.iUfnasc = uf;

			vwDidcad.setUfMunicipioNasc(idcla001.iUfnasc);
		}
		vwDidcad.setCodigoSexo(idcta001.getIcodsex());
		vwDidcad.setTipoDocumento(idcta001.getItipdoc());
		vwDidcad.setNumeroPisPasep(idcta002.getIpispas());
		vwDidcad.setCodigoMunicipioExp(idcta001.getIcomuex());
		codpesq = idcta001.getIcomuex();
		uf();
		idcla001.iUfexpe = uf;
		vwDidcad.setUfMunicipioExp(idcla001.iUfexpe);
		vwDidcad.setNumeroSerieCart(idcta001.getInserie());
		vwDidcad.setUfTituloEleitor(idcta001.getIuftitu());
		vwDidcad.setNumeroCertificado(idcta001.getIcermil());
		vwDidcad.setUfCnh(idcta001.getIufpcnh());
		vwDidcad.setFatorRh(idcta001.getIfatorh());
		vwDidcad.setNumeroCartTrab(idcta001.getIcartra());
		vwDidcad.setNumeroTituloEleitor(idcta001.getItitele());
		vwDidcad.setZonaEleitoral(idcta001.getInuzona());
		vwDidcad.setNumeroProntuarioCnh(idcta001.getIprtcnh());
		vwDidcad.setTipoSangue(idcta001.getItipsan());
		vwDidcad.setCodigoCep(idcta001.getIcodcep());
		codpesq = idcta001.getIcomuen();
		uf();
		idcla001.iUfmure = uf;
		vwDidcad.setCodigoMunicipio(idcta001.getIcomuen());
		vwDidcad.setCodigoProfissao(idcta002.getIcodpro());
		vwDidcad.setDespro(idcla001.iDespro);
		vwDidcad.setAlturaIdent(idcta002.getIaltura());
		vwDidcad.setCodigoCorCabelo(idcta002.getIcorcab());
		vwDidcad.setCodigoAnomalia(idcta002.getIcodano());
		vwDidcad.setRegiaoMilitar(idcta001.getIregiao());
		vwDidcad.setNumeroResidencia(idcta001.getInumres());
		vwDidcad.setVaraCivil(idcta001.getIvcivil());
		vwDidcad.setNumeroFolha(idcta001.getInumfol());
		vwDidcad.setNomeCartorio(idcta001.getInomcar());
		vwDidcad.setNomeBairro(idcta001.getIbairro());
		vwDidcad.setEnderecoIdent(idcta001.getIendere());
		vwDidcad.setNumeroPortariaMinist(idcta001.getInumpor());
		vwDidcad.setPaisOrigem(idcta001.getIcodpor());
		vwDidcad.setNumeroOrdem(idcta001.getIordens());
		vwDidcad.setUfMunicipio(idcla001.iUfmure);
		vwDidcad.setCodigoCutis(idcta002.getIcodcut());
		vwDidcad.setCodigoCorOlhos(idcta002.getIcorolh());
		vwDidcad.setCodigoTipoCabelo(idcta002.getItipcab());
		vwDidcad.setMatriculaFuncionario(idcta002.getImatfua());
		vwDidcad.setNumeroSecao(idcta001.getInsecao());
		vwDidcad.setZonaOficio(idcta001.getIzonaof());
		vwDidcad.setNumeroLivro(idcta001.getInumliv());
		vwDidcad.setNumeroCertidao(idcta001.getInumcer());
		vwDidcad.setComplementoEndereco(idcta001.getIcomple());
		vwDidcad.setSinaisParticulares(idcta002.getIsinpar());
		vwDidcad.setNomeAnterior(idcta001.getInomant());
		vwDidcad.setAnoPortariaMinist(idcta001.getIanopor());
		vwDidcad.setGrauin(idcta001.getIgrauin());
		vwDidcad.setRenaid(idcla001.iRenaid);
		vwDidcad.setObservacaoAdocao(idcta002.getIobserv());
		vwDidcad.setMatriculaFunc(sessao.getSisgsisp().getMatric());
		vwDidcad.setPolegarDireito(idcta000.getDedos(1, 1));
		vwDidcad.setIndicadorDireito(idcta000.getDedos(2, 1));
		vwDidcad.setMedioDireito(idcta000.getDedos(3, 1));
		vwDidcad.setAnularDireito(idcta000.getDedos(4, 1));
		vwDidcad.setMinimoDireito(idcta000.getDedos(5, 1));
		vwDidcad.setPolegarEsquerdo(idcta000.getDedos(1, 2));
		vwDidcad.setIndicadorEsquerdo(idcta000.getDedos(2, 2));
		vwDidcad.setMedioEsquerdo(idcta000.getDedos(3, 2));
		vwDidcad.setAnularEsquerdo(idcta000.getDedos(4, 2));
		vwDidcad.setMinimoEsquerdo(idcta000.getDedos(5, 2));
		vwDidcad.setMatEsp(idcta000.getMatesp());
	}

	private void rotSicRg() {
		vwsicrg.consultaNumeroRg(idcta001.getIregger());
		if (wdel.equals("D")) {
			vwsicrg.exclui();
			// dao.commit();
		} else {

			vwsicrg.setNumeroRg(idcta001.getIregger());
			vwsicrg.setDataNasc(UtilBean.obtemDataCorrente());
			vwsicrg.setDataAtu(Integer.parseInt((new SimpleDateFormat("HHmmssS").format(Calendar.getInstance().getTime()))));
			// abnFlag = "";
			vwsicrg.atualiza();
			// dao.commit();
			// dao.rollback();
		}

		if (vwsicrg.registrosProcessados() == 0) {

			vwsicrg.setNumeroRg(idcta001.getIregger());
			vwsicrg.setDataNasc(UtilBean.obtemDataCorrente());
			vwsicrg.setDataAtu(Integer.parseInt((new SimpleDateFormat("HHmmssS").format(Calendar.getInstance().getTime()))));
			// abnFlag = "";
			vwsicrg.grava();
			// dao.commit();
		}
	}

	private void historico() {
		// datatu = UtilBean.obtemDataCorrente();
		// FIND VW-DIDHIS WITH DINHID-REGGER = I-REGGER &&
		// DINHID-DATATU = DATATU &&
		// DINHID-MATRHI = MATRIC

		vwDidhis.setNumeroPosto(idcta001.getInumpos());
		// IF NO RECORDS

		vwDidhis.setNumeroRg(vwDidcad.getNumeroRg());
		vwDidhis.setNomeIdent(vwDidcad.getNomeIdent());
		vwDidhis.setNomePai(vwDidcad.getNomePai());
		vwDidhis.setNomeMae(vwDidcad.getNomeMae());
		vwDidhis.setEstadoCivil(vwDidcad.getEstadoCivil());
		vwDidhis.setNacionalidade(vwDidcad.getNacionalidadeIdent());
		vwDidhis.setNumeroCpf(vwDidcad.getNumeroCpf());
		vwDidhis.setMatriculaFunc(vwDidcad.getMatriculaFuncionario());
		vwDidhis.setCodigoAnomalia(vwDidcad.getCodigoAnomalia());
		vwDidhis.setNumeroProtocolo(vwDidcad.getNumeroProtocolo());
		vwDidhis.setPolegarDireito(vwDidcad.getPolegarDireito());
		vwDidhis.setIndicadorDireito(vwDidcad.getIndicadorDireito());
		vwDidhis.setMedioDireito(vwDidcad.getMedioDireito());
		vwDidhis.setAnularDireito(vwDidcad.getAnularDireito());
		vwDidhis.setMinimoDireito(vwDidcad.getMinimoDireito());
		vwDidhis.setPolegarEsquerdo(vwDidcad.getPolegarEsquerdo());
		vwDidhis.setIndicadorEsquerdo(vwDidcad.getIndicadorEsquerdo());
		vwDidhis.setMedioEsquerdo(vwDidcad.getMedioEsquerdo());
		vwDidhis.setAnularEsquerdo(vwDidcad.getAnularEsquerdo());
		vwDidhis.setMinimoEsquerdo(vwDidcad.getMinimoEsquerdo());
		vwDidhis.setDataNasc(vwDidcad.getDataNasc());
		vwDidhis.setGrauInstrucao(vwDidcad.getGrauin());
		vwDidhis.setRenaid(vwDidcad.getRenaid());
		vwDidhis.setDataInclusao(UtilBean.obtemDataCorrente());
		vwDidhis.setMatriculaInclusao(sessao.getSisgsisp().getMatric());
		vwDidhis.setMatesp(idcta000.getMatesp());
		vwDidhis.setDataAtualizacao(dtat);
		vwDidhis.setHoraAtu(Integer.parseInt((new SimpleDateFormat("HHmmssS").format(Calendar.getInstance().getTime()))));
		if (idcpaaa1C.getOp3().equals("S")) {

			vwDidhis.setDataBaixa(UtilBean.obtemDataCorrente());
			vwDidhis.setCodigoMotivoBaixa(Integer.parseInt(idcpaaa1C.getMotbai()));
		}
		vwDidhis.grava();
		// dao.commit();
	} // END-NOREC
		// END-FIND

	private void especial() {
		vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 0, 3, "N", 18);
		vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 3, 12, "N", idcta000.getMatesp());
		// TABELA DE SENHA
		vwTabele.consultaTabele(18, (long) idcta000.getMatesp());
		if (vwDvetab.getChaveAlfaAcesso() != idcpaaa1E.getSenesp()) {
			idcta000.enviarMensagem("senesp", "");
			return;
		}
		sislac01.niveis = dvetabVw.getDescricaoElem();
		if (!(UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("1") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("3") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("5") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("7"))) {
			idcta000.enviarMensagem("senesp", "");
			return;
		}
		if (!(UtilBean.subStr(sislac01.niveis, 30 + 11 - 1, 1).equals("1") || UtilBean.subStr(sislac01.niveis, 30 + 11 - 1, 1).equals("3") || UtilBean.subStr(sislac01.niveis, 30 + 11 - 1, 1).equals("5") || UtilBean.subStr(sislac01.niveis, 30 + 11 - 1, 1).equals("7"))) {
			idcta000.enviarMensagem("senesp", "");
			return;
		}

		if (vwDidcad.registrosProcessados() == 0) {
			idcta000.enviarMensagem("matesp", "");
			return;
		}
	}

	private boolean telas(Idcta001 pidcta001, Idcta002 pidcta002, Idctaa02 pidctaa02, Idctha01 pidctha01) throws Exception {

		// Par�grafo: ry1()

		idcta001.setMensagemSaida("TECLE PF1) PARA CONTINUAR");
		if (!idcta001.getEnviada()) {
			sessao.setAtributo("IDCPAAA1", this);
			result.include("idcta001", idcta001);
			idcta001.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return false;
		}
		if (pidcta001 != null) {
			idcta001.receberTela(false, result);
		}
		// TELA 2 DE ATUALIZACAO DO CADASTRO
		// NOVA ROTINA

		if (idcta001.getIcodsex() == 2 && idcta001.getIestciv() == 2)
		// ATE AQUI
		{
			while (viu1.pesquisaNomeIdentNomeMaeDataNasc(idcta001.getInomant(), idcta000.getInommae(), idcla001.iDatnas)) {
				if (viu1.getNumeroRg() != idcta001.getIregger()) {
					idcta001.enviarMensagem("iNomant", "REGISTRO CADASTRADO COM RG:1:" + viu1.getNumeroRg());
					return false;
				}

			}
		}
		if (UtilBean.funcao.equals(UtilBean.ctt_ajuda)) {
			// Par�grafo: ry2()

			if (idctaa02.getIcodpro() != 0)
			// PESQUISA TABELA DE PROFISSAO
			{
				vwDvetab.pesq = UtilBean.moveSubstring(vwDvetab.pesq, 0, 3, "N", 201);
				vwDvetab.pesq = UtilBean.moveSubstring(vwDvetab.pesq, 3, 12, "N", idcta002.getIcodpro());
				// TABELA DE PROFISSAO
				vwDvetab.consultaTabele(201, (long) idcta002.getIcodpro());
				// 1320
				idcla001.iDespro = dvetabVw.getDescricaoElem();

			}
			// ALTERACAO PARA IMPRESSAO DO RG E BOLETIM PELA ABN
			len = 148;
			retcode = funcoes.getchr(getarea, len, rTid);
			if ((UtilBean.subStr(getarea, 56, 8).equals("TIDC0001") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0002") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0003") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0004") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0005") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0006") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0007") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0008") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0009") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0010") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0011") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0012") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0013") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0014") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0015") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0016") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0017") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0018") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0019") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0020") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0046") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0048") || UtilBean.subStr(getarea, 56, 8).equals("TSTI0003") || UtilBean.subStr(getarea, 56, 8).equals("TCP00005") || UtilBean.subStr(getarea, 56, 8).equals("TCP00010") || UtilBean.subStr(getarea, 56, 8).equals("TCP00015") || UtilBean.subStr(getarea, 56, 8).equals("TGEJU068") || UtilBean.subStr(getarea, 56, 8).equals("TGEJU070") || UtilBean.subStr(getarea, 56, 8).equals("TIDC0010") || UtilBean.subStr(getarea, 56, 8).equals("TSTI0003") && tPosto == 1) || (tPosto == 200) || (tPosto == 002) || (tPosto == 005) || (tPosto == 077) || (UtilBean.subStr(getarea, 56, 8).compareTo("TIDC0021") >= 0 && UtilBean.subStr(getarea, 56, 8).compareTo("TIDC0120") <= 0) || tPosto == 235 || tPosto == 236 || tPosto == 237 || tPosto == 238 || tPosto == 239 || tPosto == 240 || tPosto == 241 || tPosto == 242 || tPosto == 243 || tPosto == 244 || tPosto == 245 || tPosto == 246 || tPosto == 247 || tPosto == 248 || tPosto == 249 || tPosto == 250 || tPosto == 251 || tPosto == 252 || (tPosto == 240) || (tPosto == 250) || (tPosto == 237)) {

				wvideo = "T";
				ndemidAbn = 0;

				if (!idcta002.getEnviada()) {
					sessao.setAtributo("IDCPAAA1", this);
					result.include("idcta002", idcta002);
					idcta002.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
					return false;
				}
				if (pidcta002 != null) {
					idcta002.receberTela(false, result);
				}
				// TELA 3 DE ATUALIZACAO DO CADASTRO COM RENAID
				if (!UtilBean.validarMascara(idcla001.iRenaid, "XXX9........") && !UtilBean.validarMascara(idcla001.iRenaid, "MAI9........")) {
					idcta002.enviarMensagem("iRenaid", "NUMERO DO RENAID INVALIDO (CONTROLE DA ABN)");
					return false;
				}
				vwDidcad.consultaRenaid(idcla001.iRenaid);
				idcpaaa1C.setSenesp("");

				if (idcta002.getInumvia() > 1) {
					idcpaaa1C.setSenesp("");
				}
				wrenaid = idcla001.iRenaid;
				// CALCULA DIGITO VERIFICADOR MODULO 11
				rendv = Long.parseLong(UtilBean.subStr(wrenaid, 3, 9));
				soma = 0;
				dv1 = 0;
				j = 1;
				for (i = 8; i >= 1; i += -1) {
					j += 1;
					if (j > 9) {
						j = 2;
					}

					soma = UtilBean.extraiDigitos(rendv, 8, i, 1) * j;
				}
				// DIVIDE soma = soma / 11 -- <<NULL>> resto
				resto = (int) (soma % 11);
				if (resto == 1 || resto == 0) {
					dv1 = 0;
				} else {

					dv1 = 11 - resto;
				}
				if (dv1 != idcla001.iRendig) {
					idcta002.enviarMensagem("iRennum", "");
					return false;
				}
			} else {

				if (!idctaa02.getEnviada()) {
					sessao.setAtributo("IDCPAAA1", this);
					result.include("idctaa02", idctaa02);
					idctaa02.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
					return false;
				}
				if (pidctaa02 != null) {
					idctaa02.receberTela(false, result);
				}
				// TELA DE ENTRADA PARA OS POSTOS SEM RENAID
				wvideo = "";
			}
			if (UtilBean.funcao.equals(UtilBean.ctt_pf2)) {
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idcta000", idcta000);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (vwDidcad.getDataDocumento() > 0 && vwDidcad.getNumeroVia() > 0 && !idcta002.getChave().equals("I")) {
				if (vwDidcad.getDataDocumento() > idcla001.iDatdoc) {
					idctaa02.enviarMensagem("ddoc", "DATA INFERIOR A JA CADASTRADA");
					return false;
				}
			}
			if (!UtilBean.funcao.equals(UtilBean.ctt_confirma)) {
				idctaa02.enviarMensagem(null, "TECLE PF5 PARA ATUALIZAR");
				return false;
			}

			if (!idctha01.getEnviada()) {
				sessao.setAtributo("IDCPAAA1", this);
				result.include("idctha01", idctha01);
				idctha01.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (pidctha01 != null) {
				idctha01.receberTela(false, result);
			}
			if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
				if (idcta002.getChave().equals("A")) {
					idcta000.setMensagemSaida("ALTERACAO NAO FOI EXECUTADA");
				} else {
					idcta000.setMensagemSaida("INCLUSAO NAO FOI EXECUTADA");
				}
				return true;
			}
			if (UtilBean.funcao.equals(UtilBean.ctt_anterior)) {
				return false;
			}
			funcoes.tabsatu(sessao);
			if (!funcoes.camret.equals("")) {
				idcta000.enviarMensagem(funcoes.camret, "");
				// sessao.setAtributo ("IDCPAAA1", this);
				result.include("idcta000", idcta000);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			return false;
		}
		if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
			return false;
		}
		return true;
	}

	private boolean acumulaRgImprime(Idcte0a1 pidcte0a1) throws Exception {
		l += 1;

		idcte0a1.setReggert(l, idcta001.getIregger());
		sessao.getSisgsisp().setOperacao("ECI");
		if (l == 2) {

			idcta000.setMensagemSaida("CONFIRME O NUMERO DE VIA");
			idcte0a1.setCtl("S");

		}
		if (idcte0a1.getNdemid(1) == 0)
		// ALTERACAO ABN
		{
			idcte0a1.setNdemid(1, idcta002.getNdemidabn());
			idcte0a1.setNvia(1, idcta002.getInumvia());
		} else {
			if (idcte0a1.getNdemid(2) == 0) {
				idcte0a1.setNdemid(2, idcta002.getNdemidabn());
				idcte0a1.setNvia(2, idcta002.getInumvia());
			}
		}

		if (!idcte0a1.getEnviada()) {
			sessao.setAtributo("IDCPAAA1", this);
			result.include("idcte0a1", idcte0a1);
			idcte0a1.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return false;
		}
		if (pidcte0a1 != null) {
			idcte0a1.receberTela(false, result);
		}
		if (!idcta001.getOperacao().equals("ECI")) {
			funcoes.sissm001(result, sessao);
		}
		if (!UtilBean.funcao.equals(UtilBean.ctt_processa)) {
			idcte0a1.enviarMensagem(null, "");
			return false;
		}
		if (l == 2) {
			imprimeRg();
			for (int i1 = 1; i1 <= 2; i1++) {
				reggert[i1] = 0;
			}
			for (int i1 = 1; i1 <= 2; i1++) {
				ndemid[i1] = 0;
			}
			for (int i1 = 1; i1 <= 2; i1++) {
				nvia[i1] = "";
			}
			idcpaaa1C.setMatric(0);
			l = 0;
			idcte0a1.setMensagem("");
		}
		return true;
	}

	private void imprimeRg() throws Exception {
		if (idcte0a1.getReggert(1) != 0 || idcte0a1.getReggert(2) != 0 || idcta001.getIregger() != 0)
		// ALTERACAO PARA IMPRESSAO DO RG E BOLETIM PELA ABN
		{
			if (wvideo.equals("T")) {
				Idcsup01 idcsup01 = new Idcsup01(result, sessao);
				idcsup01.executar(idcta000.getIregger(), idcta002.getNdemidabn(), idcta002.getInumvia(), idcpaaa1C.getMatric(), sessao.getSisgsisp().getVar(), idcla001.iRenaid);
			} else
			// TERMINAIS COM RENAID ABN
			{
				Subprint subprint = new Subprint(result, sessao);
				subprint.executar(reggert, ndemid, nvia, idcpaaa1C.getMatric(), sessao.getSisgsisp().getVar());
				wvideo = "";
			}
		}
	}

	private void uf() {
		uf = "";
		dvetabVw.pesq = UtilBean.moveSubstring(dvetabVw.pesq, 0, 3, "N", 001);
		dvetabVw.consultaTabele(1, (long) codpesq);

		uf = dvetabVw.getChaveAlfaAcesso();

	}

	private void restaurarEstados(Idcpaaa1B pidcpaaa1B, Idcpaaa1C pidcpaaa1C, Idcpaaa1E pidcpaaa1E, Idcta000 pidcta000, Idcta000B pidcta000B, Idcta001 pidcta001, Idcta002 pidcta002, Idctaa02 pidctaa02, Idcte0a1 pidcte0a1, Idctha01 pidctha01) {
		this.idcta000nterior = (Idcpaaa1) sessao.getAtributo("IDCPAAA1");
		if (pidcpaaa1B != null) {
			idcpaaa1B = pidcpaaa1B;
		} else {
			idcpaaa1B = this.idcta000nterior.idcpaaa1B;
		}
		idcpaaa1B.setSessao(sessao);
		if (pidcpaaa1C != null) {
			idcpaaa1C = pidcpaaa1C;
		} else {
			idcpaaa1C = this.idcta000nterior.idcpaaa1C;
		}
		idcpaaa1C.setSessao(sessao);
		if (pidcpaaa1E != null) {
			idcpaaa1E = pidcpaaa1E;
		} else {
			idcpaaa1E = this.idcta000nterior.idcpaaa1E;
		}
		idcpaaa1E.setSessao(sessao);
		if (pidcta000 != null) {
			idcta000 = pidcta000;
		} else {
			idcta000 = this.idcta000nterior.idcta000;
		}
		idcta000.setSessao(sessao);
		if (pidcta000B != null) {
			idcta000B = pidcta000B;
		} else {
			idcta000B = this.idcta000nterior.idcta000B;
		}
		idcta000B.setSessao(sessao);
		if (pidcta001 != null) {
			idcta001 = pidcta001;
		} else {
			idcta001 = this.idcta000nterior.idcta001;
		}
		idcta001.setSessao(sessao);
		if (pidcta002 != null) {
			idcta002 = pidcta002;
		} else {
			idcta002 = this.idcta000nterior.idcta002;
		}
		idcta002.setSessao(sessao);
		if (pidctaa02 != null) {
			idctaa02 = pidctaa02;
		} else {
			idctaa02 = this.idcta000nterior.idctaa02;
		}
		idctaa02.setSessao(sessao);
		if (pidcte0a1 != null) {
			idcte0a1 = pidcte0a1;
		} else {
			idcte0a1 = this.idcta000nterior.idcte0a1;
		}
		idcte0a1.setSessao(sessao);
		if (pidctha01 != null) {
			idctha01 = pidctha01;
		} else {
			idctha01 = this.idcta000nterior.idctha01;
		}
		idctha01.setSessao(sessao);
		this.faseproc = this.idcta000nterior.faseproc;
	}
}
